from joblib import load

# 加载模型
knn = load('knn_mnist_model.joblib')
scaler = load('scaler.joblib')

from PIL import Image
import numpy as np

# 假设你有一个PIL图像对象叫做new_image
new_image_path = 'E:\\mnist_jpg\\test_0_7.jpg'
new_image = Image.open(new_image_path).convert('L')  # 转换为灰度
new_image = new_image.resize((28, 28))  # 缩放到28x28

# 将图像数据转换为numpy数组，并归一化
new_image_array = np.array(new_image) / 255.0
new_image_array = new_image_array.reshape(1, -1)  # 展开成784维向量

# 使用之前训练时相同的标准化
new_image_array = scaler.transform(new_image_array)  # 注意：这里使用的是之前训练时的scaler

# 使用模型进行预测
predicted_digit = knn.predict(new_image_array)
print(f"The predicted digit is: {predicted_digit[0]}")